module Sintatico
(
	sintatico
) where


import Debug.Trace
import Tokens
import Tipos
import Interpretador


{--
	O sintático deve gerar uma "árvore" e nessa árvore deve verificar os tipos e interpretar
--}
sintatico :: [Token] -> (Bool, [Token], Expr) 
sintatico tokens =
    case tokens of
        (Program_tk,l0):(Id_tk id,l1):tl ->
            let (a,b,c) = expression tl in
                case b of
                    (End_tk,l0):(Program_tk,l1):tl -> (True, [], c)
                    _ -> expression b
        _ -> (False, tokens, (Constant (Int_v 1) Int_t))

